/**
 * 工具集
 */
import Vue from 'vue'
import Cookie from './js.cookie.js'
var utils = {
    /**
     * [delSpecialChar 删除特殊符号]
     * @param  {[type]} s [description]
     * @return {[type]}   [description]
     */
    delSpecialChar: function (s) {
        var pattern = new RegExp("[`~!@#$^&*()=|{}':;',\\[\\].<>/?~！@#￥……&*（）&;|{}【】‘；：”“'。，、？]")
        var str = "";
        for (var i = 0; i < s.length; i++) {
            str = str + s.substr(i, 1).replace(pattern, '');
        }
        return str
    },
    /**
     * [isNullObj description]
     * @param  {[type]}  obj [description]
     * @return {Boolean}     [description]
     */
    isNullObj: function (obj) {
        for (var i in obj) {
            if (obj.hasOwnProperty(i)) {
                return false;
            }
        }
        return true;
    },
    ua: function () {
        return navigator.userAgent.toLowerCase();
    },
    trim: function (str, isdeep) { //删除左右两端的空格及特殊符号
        var result;
        result = str.replace(/(^\s+)|(\s+$)/g, "");
        result = result.replace(/\s/g, "");
        if (isdeep) {
            result = this.delSpecialChar(result);
        } else {
            result = result.replace(/\$|\&|\^|\?|\~|\!|\<|\>|\#|\%/g, '')
        }
        return result;
    },
    /**
     * [doLogin 微信登录]
     * @param  {[type]} obj [description]
     * @return {[type]}     [description]
     */
    doLogin: function () {
    },

    /**
     * [doLoginOut description]
     * @return {[type]} [description]
     */
    doLoginOut: function (obj) {
        Cookie.remove('token')
        if (typeof obj === 'function') {
            obj()
        }
    },
    getExplorer() {
        let explorer = navigator.userAgent;
        if (explorer.indexOf("MSIE") >= 0 || explorer.indexOf("Trident/7.0") > 0 || explorer.indexOf("edge") >= 0) {
            return 'ie'
        } else if (explorer.indexOf("Firefox") >= 0) {
            return 'Firefox'
        } else if (explorer.indexOf("Chrome") >= 0) {
            return 'Chrome'
        } else if (explorer.indexOf("Opera") >= 0) {
            return 'Opera'
        } else if (explorer.indexOf("Safari") >= 0) {
            return 'Safari'
        } else {
            return 'other explorer'
        }
    },
    /**
     * 从URL（的查询字符串）中取key对应的值
     */
    getQueryStringArg: function (url, name) {
        let query = '';
        if (url.indexOf('?') > -1) {
            query = url.substr(url.indexOf('?') + 1)
        }
        let reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)"); // 构造一个含有目标参数的正则表达式对象
        let r = query.match(reg); // 匹配目标参数
        if (r !== null) {
            return unescape(r[2]);
        }

        return null; // 返回参数值
    },
    dateFormat (date, fmt) {
        if (!(date instanceof Date)) {
            return ''
        }
        var o = {
            "M+": date.getMonth() + 1, //月份
            "d+": date.getDate(), //日
            "h+": date.getHours(), //小时
            "m+": date.getMinutes(), //分
            "s+": date.getSeconds(), //秒
            "q+": Math.floor((date.getMonth() + 3) / 3), //季度
            "S": date.getMilliseconds() //毫秒
        };
        if (/(y+)/.test(fmt)) fmt = fmt.replace(RegExp.$1, (date.getFullYear() + "").substr(4 - RegExp.$1.length));
        for (var k in o)
            if (new RegExp("(" + k + ")").test(fmt)) fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));
        return fmt;
    }
}


Vue.$utils = Vue.prototype.$utils = utils
export default utils
